package com.eascs.banknet.task;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.inject.Inject;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

import com.eascs.app.dao.JdbcSession;
import com.eascs.app.log.Logger;
import com.eascs.app.log.LoggerFactory;
import com.eascs.banknet.boc.net.BOCNetService;
import com.eascs.banknet.common.entity.RphisEntity;
import com.eascs.banknet.common.vo.ServerInfo;
import com.eascs.common.util.StringUtil;

//@Component
public class Test implements InitializingBean {
	private static final Logger logger = LoggerFactory.getLogger(Test.class);
	@Inject
	protected JdbcSession o2oJdbcSession;
	@Autowired
	@Qualifier("bocNetService")
	protected BOCNetService bocNetService;

	@Override
	public void afterPropertiesSet() throws Exception {
//		new Thread(new Runnable() {
//			@Override
//			public void run() {
//
//				try {
//					logger.info("开始处理还款记录.....");
//					List<String> fileList = new ArrayList<String>();
//					FTPClient ftp = new FTPClient();
//					ftp.connect("26.127.253.51", 21);
//					ftp.login("COM05", "ldp158");// 登录
//					ftp.changeWorkingDirectory("Datafiles/REPAYHIS/");
//					FTPFile[] files = ftp.listFiles();
//					for (FTPFile file : files) {
//						if (file.isFile()) {
//							fileList.add(file.getName());
//						}
//					}
//					ftp.disconnect();
//
//					// 循环处理文件
//					for (String fileName : fileList) {
//						logger.info("开始处理文件:---->" + fileName);
//						ServerInfo ftpInfo = new ServerInfo("26.127.253.51", 21, "COM05", "ldp158");
//						InputStream inputStream = bocNetService.readFtpFile(ftpInfo, "Datafiles/REPAYHIS/", fileName);
//						InputStreamReader read = new InputStreamReader(inputStream, "GBK");// 考虑到编码格式
//						BufferedReader bufferedReader = new BufferedReader(read);
//						if (bufferedReader.ready()) { // 判断文件是否存在
//							String lineTxt = null;
//							while ((lineTxt = bufferedReader.readLine()) != null) {
//								RphisEntity entity = new RphisEntity();
//								String[] str = lineTxt.split("\\|");
//								entity.setActno(str[0]);
//								entity.setTermno(str[1]);
//								entity.setTrnda(str[2]);
//								entity.setJrnlno(str[3]);
//								entity.setValda(str[4]);
//								entity.setRepno(str[5]);
//								entity.setRate(new BigDecimal(str[6]));
//								entity.setPrin(new BigDecimal(str[7]));
//								entity.setIntr(new BigDecimal(str[8]));
//								entity.setPrinFine(new BigDecimal(str[9]));
//								entity.setIntrFine(new BigDecimal(str[10]));
//								entity.setPrinFineFine(new BigDecimal(str[11]));
//								entity.setCreateTime(new Date());
//								entity.setFileDate(fileName.split("-")[1]);
//								String sql = "select ors.actno from o2o_rphis ors where ors.actno = ? and ors.termno = ? and ors.trnda = ? and ors.jrnlno = ?";
//								String result = o2oJdbcSession.findString(sql, entity.getActno(), entity.getTermno(), entity.getTrnda(), entity.getJrnlno());
//								if (StringUtil.isEmpty(result)) {
//									o2oJdbcSession.insert(entity);
//									logger.info(entity.toString() + "-->插入数据库成功");
//								}
//							}
//						} else {
//							logger.info("bufferedReader.ready() === false");
//						}
//					}
//
//					logger.info("还款记录处理结束.....");
//				} catch (Exception e) {
//					logger.error("处理还款数据失败", e);
//				} finally {
//				}
//			}
//		}).start();
	}
}
